package com.zhentao.config;

import org.springframework.stereotype.Component;

import java.util.Arrays;
import java.util.List;

/**
 * 白名单配置
 * 定义不需要token验证的路径
 */
@Component
public class WhiteListConfig {
    
    /**
     * 白名单列表
     * 这些路径不需要token验证
     */
    public static final List<String> WHITE_LIST = Arrays.asList(
            // Swagger相关
            "/swagger-ui.html",
            "/swagger-ui/**",
            "/swagger-resources/**",
            "/v2/api-docs",
            "/v3/api-docs",
            "/webjars/**",
            "/doc.html",
            // 认证相关
            "/auth/login",
            "/auth/register",
            "/auth/**",
            
            // 用户信息相关
            "/user/*",           // 获取用户信息
            "/user/*/roles",     // 获取用户角色
            
            // 购物车相关
            "/cart/**",          // 所有购物车操作
            
            // 订单相关
            "/orders/**",        // 所有订单操作
            
            // 其他公开接口
            "/user/public/**",
            "/error"
    );

    /**
     * 判断请求路径是否在白名单中
     */
    public boolean isInWhiteList(String path)  {
        return WHITE_LIST.stream().anyMatch(path::startsWith);
    }
} 